Terraform에서 keypair를 작성하는 방법에 대해 알아보자!

Terraform에서 keypair를 작성하는 방법에 대해 알아보자!

Clock Icon2023.07.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

소개

안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 Terraform에서 keypair를 작성하는 방법에 대해 알아 보겠습니다.

terraform 코드 작성하기

resource "tls_private_key" "test_key" {
  algorithm = "RSA"
  rsa_bits  = 4096
}

위의 코드에서는 praivate key를 생성하기 위해 작성 되었습니다.
algorithm에서 "RSA" 와 "ECDSA" 중에서 여러분들이 필요하신 것을 선택해서 설정 합니다.
rsa_bits는 위의 algorithm에서 RSA를 설정 했을 경우 RSA 키의 크기(비트)입니다. 기본값은 2048입니다.
algorithm에서 ECDSA를 설정했을 경우 ecdsa_curve의 값을 설정해야 합니다.

resource "aws_key_pair" "test_keypair" {
  key_name   = "test-keypair.pem"
  public_key = tls_private_key.test_key.public_key_openssh
} 

위의 코드에서는 AWS에서 keypair를 작성 합니다.
public_key에서 어떤 private key의 public key정보를 등록할 것 인지를 설정 합니다.

resource "local_file" "test_local" {
  filename        = "./keypair/test-keypair.pem"
  content         = tls_private_key.test_key.private_key_pem
  file_permission = "0600"
}

위의 코드는 작성된 private키를 자신의 local환경에 저장 하기 위한 코드 입니다.
filename에서 파일의 이름을 설정 합니다.
content에서 어떤 파일, 파일의 정보등을 대상으로 할 것 인가를 설정 합니다.
file_permission애서 생성된 파일에 어떠한 권한을 줄 것인가를 설정 합니다. (ssh 경우 400 이나 600을 사용)

  • 400 : 더이상 편집을 하지 않을 경우
  • 600 : 편집하거나 할 가능성이 있는 경우

전체 코드

resource "tls_private_key" "test_key" {
  algorithm = "RSA"
  rsa_bits  = 4096
}

resource "aws_key_pair" "test_keypair" {
  key_name   = "test-keypair.pem"
  public_key = tls_private_key.test_key.public_key_openssh
} 

resource "local_file" "test_local" {
  filename        = "./keypair/test-keypair.pem"
  content         = tls_private_key.test_key.private_key_pem
  file_permission = "0600"
}

마무리

이번 블로그에서는 Terraform에서 keypair를 작성 하는 방법을 소개 하였습니다. keypair 파일도 terraform에서 작성하여 관리하고 싶은 분들께 조금이라도 도움이 되었으면 좋겠습니다

참고 자료

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.